﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
using namespace std;

//void hehe()
//{
//	string a = "hello world";
//
//	string b = a;
//
//	if (a.c_str() == b.c_str())
//	{
//
//		cout << "true" << endl;
//
//	}
//
//	else cout << "false" << endl;
//
//	string c = b;
//
//	c = "";
//
//	if (a.c_str() == b.c_str())
//
//	{
//
//		cout << "true" << endl;
//
//	}
//
//	else cout << "false" << endl;
//	a = "";
//	if (a.c_str() == b.c_str())
//	{
//
//		cout << "true" << endl;
//
//	}
//	else cout << "false" << endl;
//	//return 0;
//
//}
//int main()
//{
//	hehe();
//	return 0;
//}

//int main()
//{
//	string str("Hello Bit.");
//	//str.reserve(111);
//	str.resize(20);
//	str.reserve(50);
//	cout << str.size() << " " << str.capacity() << " " << str << endl;
//	return 0;
//
//}

//int main()
//{
//	string st1 = "hahaha";
//
//	return 0;
//}

//int main(int argc, char* argv[])
//{
//
//	string strText = "How are you?";
//	string strSeparator = " ";
//	string strResult;
//
//	int size_pos = 0;
//	int size_prev_pos = 0;
//
//	while ((size_pos = strText.find_first_of(strSeparator, size_pos)) != string::npos)
//	{
//		strResult = strText.substr(size_prev_pos, size_pos - size_prev_pos);
//		std::cout << strResult << " ";
//		size_prev_pos = ++size_pos;
//	}
//
//	if (size_prev_pos != strText.size())
//	{
//		int a = size_pos - size_prev_pos;
//		strResult = strText.substr(size_prev_pos, a);
//		std::cout << strResult << " ";
//
//	}
//	std::cout << endl;
//
//	return 0;
//
//}

//int main()
//{
//	string s1 = "hello world";
//	//for (auto ch : s1)
//	//{
//	//	cout << ch << " " << endl;
//	//}
//	string::iterator it = s1.begin();
//	while (it != s1.end())
//	{
//		cout << *it << " ";
//		++it;
//	}
//	return 0;
//}

//int myAtoi(const char* str)
//{
//	string s = str;
//	int symbol = 1;
//	int n = 0;
//
//	string::iterator it = s.begin();
//	{
//		while(it != s.end())
//		{
//			//注意：不是：*it != '' ''。是字符不是字符串
//			while (it != s.end() && *it != ' ')
//			{
//				++it;
//			}
//
//			if (*it == '-')
//			{
//				symbol = -1;
//				++it;
//			}
//
//			else if (*it == '+')
//			{
//				++it;
//			}
//
//			else if (*it >= '0' && *it <= '9')
//			{
//				n = 10 * n + *it;
//				++it;
//			}
//
//			else
//				break;
//		}
//			
//	}
//	return symbol * n;
//}




/*
leetcode LCR 192. 把字符串转换成整数 (atoi)
*/
//class Solution
//{
//public:
//	int myAtoi(string str)
//	{
//		int symbol = 1;
//		long long n = 0;
//		
//		string::iterator it = str.begin();
//		
//		//注意：不是：*it != '' ''。是字符不是字符串
//		while (it != str.end() && *it == ' ')
//		{
//			++it;
//		}
//		
//		if (*it == '-')
//		{
//			symbol = -1;
//			++it;
//		}
//		else if (*it == '+')
//		{
//			++it;
//		}
//
//		while(it != str.end())
//		{
//			if (it != str.end() && *it >= '0' && *it <= '9')
//			{
//				n = 10 * n + (*it - '0');
//				if (n > INT_MAX)
//				{
//					if (symbol == -1)
//						return symbol * INT_MAX - 1;
//					else
//						return INT_MAX;
//				}
//				++it;
//			}
//			else
//				break;
//		}
//			
//		return symbol * n;
//	}
//};
//
//
//
//int main()
//{
//	cout << Solution().myAtoi("   -42") << endl;
//	return 0;
//}

/*
leetcode 415. 字符串相加
*/
//class Solution 
//{
//public:
//    string addStrings(string num1, string num2) 
//    {
//        string s;
//        int size1 = num1.size() - 1;
//        int size2 = num2.size() - 1;
//        int carry = 0;
//
//        while (size1 >= 0 || size2 >= 0)
//        {
//            int sum = 0;
//            if (size1 < 0)
//                sum = num2[size2--] - '0' + carry;
//            else if (size2 < 0)
//                sum = num1[size1--] - '0' + carry;
//            else 
//                sum = num1[size1--] - '0' + num2[size2--] - '0' + carry;
//            carry = 0;
//            if (sum >= 10)
//            {
//                sum -= 10;
//                ++carry;
//            }
//            s += sum + '0';
//        }
//
//        if (carry)
//        {
//            s += carry + '0';
//        }
//
//        int s1 = 0, s2 = s.size() - 1;
//        while (s2 > s1)
//        {
//            swap(s[s1++], s[s2--]);
//        }
//
//        return s;
//        
//    }
//};
//int main()
//{
//    cout << Solution().addStrings("6", "501") << endl;
//    return 0;
//}

/*
HJ1 字符串最后一个单词的长度
*/
//int main()
//{
//    string s;
//    getline(cin, s);
//
//    int n = s.find_last_of(" ");
//    if (n != -1)
//        cout << s.size() - n - 1 << endl;
//    else
//        cout << s.size() << endl;
//    
//    return 0;
//}



/*
leetcode 125. 验证回文串
*/

//class Solution {
//public:
//    bool isPalindrome(string s)
//    {
//        string str;
//        string::iterator it = s.begin();
//        while (it != s.end())
//        {
//            if ((*it <= 'z' && *it >= 'a') || (*it <= '9' && *it >= '0'))
//            {
//                str += *it;
//            }
//
//            else if (*it <= 'Z' && *it >= 'A')
//            {
//                str += *it + 32;
//            }
//
//            ++it;
//        }
//
//        int begin = 0, end = str.size() - 1;
//        while (end > begin)
//        {
//            if (str[end--] != str[begin++])
//                return false;
//        }
//        return true;
//    }
//};
//int main()
//{
//    Solution().isPalindrome("1P");
//    return 0;
//}


class Solution {
public:
    string reverseStr(string s, int k)
    {
        int left = 0;
        int right = k - 1 > s.size() - 1 ? s.size() - 1 : k - 1;
        while (left < s.size())
        {
            int right_ = right;
            int left_ = left;
            while (right > left)
            {
                swap(s[right--], s[left++]);
            }

            left = right_ + k + 1;
            right = left_ + k - 1 >= s.size() - 1 ? s.size() - 1 : left_ + k - 1;
        }
        return s;
    }

};
int main()
{
    cout << Solution().reverseStr("a", 2) << endl;
    return 0;
}